﻿using System;
using System.ComponentModel;
using SharpArch.Domain.DomainModel;

namespace ToyStore.Domain
{
	/// <summary>
	/// Klasa bazowa każdej encji istniejącej w systemie mapowanej z bazą danych.
	/// </summary>
	public class BaseEntity : Entity
	{
		/// <summary>
		/// Czy dana encja jest usunięta.
		/// </summary>
		public virtual bool IsDeleted { get; set; }

		/// <summary>
		/// Wersjonowanie encji.
		/// </summary>
		[DisplayName("Wersja")]
		public virtual int Version { get; set; }

		/// <summary>
		/// Data utworzenia.
		/// </summary>
		[DisplayName("Data utworzenia")]
		public virtual DateTime CreationDate { get; set; }
		
		/// <summary>
		/// Data ostatniej modyfikacji.
		/// </summary>
		[DisplayName("Data modyfikacji")]
		public virtual DateTime? ModificationDate { get; set; }

		/// <summary>
		/// Pobranie typu obiektu.
		/// </summary>
		/// <returns></returns>
		public virtual object This()
		{
			return this;
		}
	}
}
